/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pio.action.coordinador;

/**
 *
 * @author tamerdark
 */
import DBMS.DataBaseManager;
import clases.Fecha;
import clases.Periodo;
import java.io.IOException;
import java.util.List;
import javax.servlet.*;
import javax.servlet.http.*;

public class AutorizarPeriodo implements Filter {

    private String antes = "/Coordinador/Links.do?method=antes";
    private String despues = "/Coordinador/Links.do?method=despues";

    public void init(FilterConfig filterConfig)
            throws ServletException {
        System.out.println("Iniciando AutorizarPeriodo");
    }

    public void doFilter(ServletRequest request,
            ServletResponse response,
            FilterChain chain)
            throws IOException, ServletException {
        System.out.println("Aplicando filtro de periodo.");
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse res = (HttpServletResponse) response;
        DataBaseManager dbms = DataBaseManager.getInstance();
        List<Periodo> pl = dbms.consultarPeriodo(new Periodo());
        Periodo p = (pl.size() > 0 ? pl.get(0) : null);
        if (p == null) {
            System.out.println("Error consultando periodo");
        } else {
            int fecha = Fecha.compararFechas(p.getFechaInicioPreseleccion(),
                    p.getFechaCierrePreseleccion());
            if (fecha < 0) {
                System.out.println("Periodo antiguo");
                req.getRequestDispatcher(antes).forward(req, res);
            } else if (fecha > 0) { // El rol es nulo o es valido.
                System.out.println("Periodo posterior");
                req.getRequestDispatcher(despues).forward(req, res);
            } else {
                System.out.println("Periodo valido");
                chain.doFilter(request, response);
            }
        }
    }

    public void destroy() {
        System.out.println("Destruyendo AutorizarPeriodo");
    }
}
